#include "set_pins.h"
// uint8_t pin_status[]
void Device_PowerUpInit(void)
{
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_SET);
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET);
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, GPIO_PIN_SET);
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET);
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_SET);
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_SET);
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET);
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_SET);
}

void SetPins(uint8_t power_pins, uint8_t aux_pins) {
    for (uint8_t i = 0; i < 4; i++) {
        if (power_pins & (1 << (3 - i))) { 
            // printf("GPIO PIN%06X,SET\n", GPIO_PIN_0 << i);
            HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 << i, GPIO_PIN_SET);
        } else {
            // printf("GPIO PIN%06X,RESET\n", GPIO_PIN_0 << i);
            HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 << i, GPIO_PIN_RESET); 
        }
    }

    for (uint8_t i = 0; i < 6; i++) {
        if (aux_pins & (1 << i)) {
            // printf("GPIO PIN%06X,SET\n", GPIO_PIN_4 << i);
            HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4 << i, GPIO_PIN_SET);
        } else {
            // printf("GPIO PIN%06X,RESET\n", GPIO_PIN_4 << i);
            HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4 << i, GPIO_PIN_RESET);
        }
    }
}
